package com.CST.service.zx;

import com.CST.bo.zx.ProjectAppealBO;
import com.CST.bo.zx.ProjectAppealDetailBO;
import com.CST.bo.zx.ProjectAppealHandleBO;
import com.CST.entity.zx.ZxProjectAppeal;
import com.CST.vo.zx.ZxProjectAppealInfo;
import com.CST.vo.zx.ZxProjectHandingResult;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ly
 * @since 2023-03-23
 */
public interface IZxProjectAppealService extends IService<ZxProjectAppeal> {

    /**
     * 保存项目申诉记录
     * @param zxProjectAppeal
     * @return
     */
    boolean saveZxProjectAppeal(ZxProjectAppeal zxProjectAppeal);

    /**
     * 分页查询项目申诉记录
     * @param projectAppealBO
     * @return
     */
    List<ZxProjectAppeal> queryAllAppeal(ProjectAppealBO projectAppealBO);

    /**
     * 查询申诉信息
     * @param projectAppealDetailBO
     * @return
     */
    ZxProjectAppealInfo queryAppealDetail(ProjectAppealDetailBO projectAppealDetailBO);

    /**
     * 查询处理结果
     * @param projectAppealDetailBO
     * @return
     */
    ZxProjectHandingResult queryHandingResult(ProjectAppealDetailBO projectAppealDetailBO);

    /**
     * 根据id修改备注
     * @param zxProjectAppeal
     * @return
     */
    Boolean editZxProjectAppeal(ZxProjectAppeal zxProjectAppeal);

    /**
     * 查询所有的要处理的项目申诉
     * @param projectAppealBO
     * @return
     */
    List<ZxProjectAppeal> queryAlleHandleAppeal(ProjectAppealBO projectAppealBO);

    /**
     * 已修正申诉
     * @param projectAppealHandleBO
     * @return
     */
    Boolean alreadyEditForZxProjectAppeal(ProjectAppealHandleBO projectAppealHandleBO);

    /**
     * 查询未处理的数量
     * @return
     */
    int getNoHandleNum();

    /**
     * 查询项目申诉明细
     * @param projectAppealDetailBO
     * @return
     */
    Map<String, Object> queryZxProjectAppealForDetail(ProjectAppealDetailBO projectAppealDetailBO);
}
